Motion sensor data processing using various power management modes

ABSTRACT

Systems and methods for processing motion sensor data using various power management modes of an electronic device are provided. Power may be provided to a motion sensor during a first power mode of the device. In response to the motion sensor detecting a motion event with a magnitude exceeding a threshold, the sensor may transmit a wake up signal to a power management unit of the device. In response to receiving the wake up signal, the power management unit may switch the device to a second power mode. The device may provide power to a processor and load the processor with a motion sensing application when switching to the second power mode. During the second power mode, motion sensor data may be processed to determine that the motion event is not associated with an intentional user input and the device may return to the first power mode.

FIELD OF THE INVENTION

This can relate to systems and methods for processing motion sensor dataand, more particularly, to systems and methods for processing motionsensor data using various power management modes of an electronicdevice.

BACKGROUND OF THE DISCLOSURE

Electronic devices, and in particular portable electronic devices (e.g.,portable media players and cellular telephones), often include one ormore sensors for detecting characteristics of the device and itssurroundings. For example, an electronic device may include one or moremotion sensors, such as an accelerometer or gyroscope, for detecting theorientation and/or movement of the device. The electronic device mayprocess the data generated by the motion sensors and may be operative toperform particular operations based on the processed motion sensor data.For example, an electronic device may process motion sensor data todetermine the number of steps taken by a user carrying the device,thereby providing a pedometer application. This type of pedometerapplication may be utilized by the device over a long period of time inorder to detect every step taken by a user, even when the user may notbe actively interacting with the device. However, keeping certain devicecomponents active during utilization of such a pedometer application mayconsume a significant amount of the power available to the device.

SUMMARY OF THE DISCLOSURE

Systems, methods, and computer-readable media for processing motionsensor data using various power management modes of an electronic deviceare provided.

For example, in some embodiments, there is provided a method forcontrolling power consumption of an electronic device. The method mayinclude providing power to a motion sensor of the device during a firstinactive power mode of the device. Next, the method may includeswitching from the first inactive power mode to a first active powermode of the device in response to detecting a magnitude of a motionevent that exceeds a threshold using the motion sensor. After theswitching, the method may include returning from the first active powermode to the first inactive power mode in response to determining thatthe motion event is not associated with an intentional user input.

For example, the switching may include activating at least a portion ofa processor of the device and loading the processor with a motionsensing application. The switching may also include instructing theprocessor to bypass a device component activation step of theapplication, such as a device component activation step that instructsthe processor to at least partially activate a display output componentof the device. The returning may include unloading the motion sensingapplication from the processor and deactivating at least a portion ofthe processor.

In other embodiments, there is provided a method for controlling powerconsumption of an electronic device. The method may include processingfirst motion sensor data for a first duration of time during a firstactive power mode of the device. Next, the method may include switchingfrom the first active power mode to a first inactive power mode of thedevice in response to detecting that the first processed motion sensordata identifies a first motion event occurring a first number of timesduring the first duration of time at a first rate. Then, the method mayinclude returning from the first inactive power mode to the first activepower mode after a second duration of time. Next, the method may includeprocessing second motion sensor data for a third duration of time anddetermining that the second processed motion sensor data identifies thefirst motion event occurring a second number of times during the thirdduration of time at the first rate. Finally, the method may includeresponding to a third number of the first motion event. The third numbermay equal the second number plus the product of the second duration oftime and the rate.

For example, the second duration of time may be longer than the thirdduration of time. In some embodiments, the first motion event may be auser stepping event and the method may include storing the third numberin a counter indicative of the amount of steps taken by a user of thedevice. In some embodiments, the switching from the first active powermode to the first inactive power mode may include unloading a motionsensing application from a processor of the device and deactivating atleast a portion of the processor.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other aspects of the invention, its nature, and variousfeatures will become more apparent upon consideration of the followingdetailed description, taken in conjunction with the accompanyingdrawings, in which like reference characters refer to like partsthroughout, and in which:

FIGS. 1 and 2 are schematic views of an illustrative electronic devicein accordance with some embodiments of the invention;

FIGS. 3A-3D are a flowchart of an illustrative process for processingmotion sensor data using various power management modes in accordancewith some embodiments of the invention; and

FIG. 4 is a flowchart of an other illustrative process for processingmotion sensor data using various power management modes in accordancewith some embodiments of the invention.

DETAILED DESCRIPTION OF THE DISCLOSURE

Systems, methods, and computer-readable media for processing motionsensor data using various power management modes of an electronic deviceare provided and described with reference to FIGS. 1-4.

An electronic device may be operative to receive motion sensor datagenerated by a motion sensor and the motion sensor data may be used tocontrol a function of the electronic device. For example, a user of thedevice may perform a certain motion event (e.g., a walking event or ashaking event) that may cause the motion sensor to detect a particularmovement and thereby generate particular motion sensor data. A motionsensing application may be utilized by the device to process thegenerated motion sensor data. For example, a processor running a motionsensing application may analyze the motion sensor data to distinguishthe specific type of motion event that caused the motion sensor togenerate the motion sensor data. Then the application may determine ifthat specific type of motion event is associated with an instruction tocontrol a function of the device and, if so, the application may carryout that instruction.

The electronic device may be able to operate in various power managementmodes in order to conserve power during certain situations. For example,an electronic device may be configured to switch from an active powermode to a sleep power mode when certain device components have not beenused and/or certain instructions have not been received within a certainperiod of time. Various components may be at least partially deactivatedby the device when switching to the sleep mode. However, in someembodiments, a motion sensor may remain at least partially activatedwhen the device is operating in a lower power mode, such as a sleepmode, so that certain user motion events may still be detected andappropriately utilized by the device. For example, a motion sensor maybe utilized as a pedometer for continuously detecting user step motionevents despite the device switching between various power managementmodes for conserving power.

FIG. 1 is a schematic view of an illustrative electronic device 100 fordetecting a user's steps using one or more motion sensors in accordancewith some embodiments of the invention. Electronic device 100 mayperform a single function (e.g., a device dedicated to detecting auser's steps) and, in other embodiments, electronic device 100 mayperform multiple functions (e.g., a device that detects a user's steps,plays music, and receives and transmits telephone calls). Moreover, insome embodiments, electronic device 100 may be any portable, mobile, orhand-held electronic device configured to detect a user's motions (e.g.,steps) wherever the user travels. Electronic device 100 may include anysuitable type of electronic device having one or more motion sensorsoperative to detect a user's motions. For example, electronic device 100may include a media player (e.g., an iPod™ available by Apple Inc. ofCupertino, Calif.), a cellular telephone (e.g., an iPhone™ available byApple Inc.), a personal e-mail or messaging device (e.g., a Blackberry™available by Research In Motion Limited of Waterloo, Ontario), any otherwireless communication device, a pocket-sized personal computer, apersonal digital assistant (“PDA”), a laptop computer, a music recorder,a still camera, a movie or video camera or recorder, a radio, medicalequipment, any other suitable type of electronic device, and anycombinations thereof.

Electronic device 100 may include a processor or control circuitry 102,memory 104, communications circuitry 106, power supply 108, input/output(“I/O”) circuitry 110, and one or more motion sensors 112. Electronicdevice 100 may also include a bus 103 that may provide a data transferpath for transferring data, to, from, or between various othercomponents of device 100. In some embodiments, one or more components ofelectronic device 100 may be combined or omitted. Moreover, electronicdevice 100 may include other components not combined or included inFIG. 1. For example, electronic device 100 may also include variousother types of components, including, but not limited to, light sensingcircuitry, camera lens components, or global positioning circuitry, aswell as several instances of one or more of the components shown inFIG. 1. For the sake of simplicity, only one of each of the componentsis shown in FIG. 1.

Electronic device 100 may also be provided with a housing 101 that mayat least partially enclose one or more of the components of device 100for protecting them from debris and other degrading forces external todevice 100. In some embodiments, all of the components of electronicdevice 100 may be provided within the same housing 101. In otherembodiments, one or more of the components may be provided within itsown housing (e.g., a motion sensor 112 may be provided within its ownhousing and may communicate wirelessly or through a wire with aprocessor 102, which may be provided within its own housing).

Memory 104 may include one or more storage mediums, including, forexample, a hard-drive, solid-state drive, flash memory, permanent memorysuch as read-only memory (“ROM”), semi-permanent memory such as randomaccess memory (“RAM”), any other suitable type of storage component, orany combination thereof. Memory 104 may include cache memory, which maybe one or more different types of memory used for temporarily storingdata for electronic device applications. Memory 104 may store media data(e.g., music, image, and video files), software (e.g., for implementingfunctions on device 100), firmware, preference information (e.g., mediaplayback preferences), lifestyle information (e.g., food preferences),exercise information (e.g., information obtained by exercise monitoringequipment), transaction information (e.g., information such as creditcard information), wireless connection information (e.g., informationthat may enable device 100 to establish a wireless connection),subscription information (e.g., information that keeps track of podcastsor television shows or other media a user subscribes to), contactinformation (e.g., telephone numbers and e-mail addresses), calendarinformation, any other suitable data, or any combination thereof.

Communications circuitry 106 may be provided to allow device 100 tocommunicate with one or more other electronic devices or servers (notshown) using any suitable communications protocol. For example,communications circuitry 106 may support Wi-Fi (e.g., an 802.11protocol), Ethernet, Bluetooth™, high frequency systems (e.g., 900 MHz,2.4 GHz, and 5.6 GHz communication systems), cellular networks (e.g.,GSM, AMPS, GPRS, CDMA, EV-DO, EDGE, 3GSM, DECT, IS-136/TDMA, iDen, LTE,or any other suitable cellular network or protocol), infrared,transmission control protocol/internet protocol (“TCP/IP”) (e.g., any ofthe protocols used in each of the TCP/IP layers), hypertext transferprotocol (“HTTP”), BitTorrent™, file transfer protocol (“FTP”),real-time transport protocol (“RTP”), real-time streaming protocol(“RTSP”), secure shell protocol (“SSH”), voice over internet protocol(“VOIP”), any other communications protocol, or any combination thereof.Communications circuitry 106 may also include circuitry that can enabledevice 100 to be electrically coupled to another device (e.g., acomputer or an accessory device) and communicate with that other device,either wirelessly or via a wired connection.

Power supply 108 can include any suitable circuitry for receiving and/orgenerating power, and for providing such power to one or more componentsof electronic device 100. In some embodiments, power supply 108 can becoupled to a power grid (e.g., when device 100 is not acting as aportable device or when a battery of the device is being charged at anelectrical outlet with power generated by an electrical power plant). Asanother example, power supply 108 can be configured to generate powerfrom a natural source (e.g., solar power using solar cells). In someembodiments, power supply 108 can include one or more batteries forproviding power (e.g., when device 100 is acting as a portable device).For example, power supply 108 can include one or more of a battery(e.g., a gel, nickel metal hydride, nickel cadmium, nickel hydrogen,lead acid, or lithium-ion battery), an uninterruptible or continuouspower supply (“UPS” or “CPS”), and circuitry for processing powerreceived from a power generation source (e.g., power generated by anelectrical power plant and delivered to the user via an electricalsocket or otherwise).

The power can be provided by power supply 108 as alternating current ordirect current, and may be processed to transform power or limitreceived power to particular characteristics. For example, the power canbe transformed to or from direct current, and constrained to one or morevalues of average power, effective power, peak power, energy per pulse,voltage, current (e.g., measured in amperes), or any othercharacteristic of received power. Power supply 108 can be operative torequest or provide particular amounts of power at different times, forexample, based on the needs or requirements of electronic device 100 orperiphery devices that may be coupled to electronic device 100 (e.g., torequest more power when charging a battery than when the battery isalready charged).

Input/output circuitry 110 may be operative to convert, andencode/decode, if necessary, analog signals and other signals intodigital data. In some embodiments, I/O circuitry 110 may convert digitaldata into any other type of signal, and vice-versa. For example, I/Ocircuitry 110 may receive and convert physical contact inputs (e.g.,using a multi-touch screen), physical movements (e.g., using a mouse orsensor), analog audio signals (e.g., using a microphone), or any otherinput. The digital data can be provided to and received from processor102, memory 104, or any other component of electronic device 100.Although I/O circuitry 110 is illustrated in FIG. 1 as a singlecomponent of electronic device 100, several instances of I/O circuitrycan be included in electronic device 100.

Input/output circuitry 110 may include any suitable mechanism orcomponent for allowing a user to provide inputs for interacting orinterfacing with electronic device 100. For example, an input componentof I/O circuitry 110 may include any suitable user input component ormechanism and can take a variety of forms, including, but not limitedto, an electronic device pad, dial, click wheel, scroll wheel, touchscreen, one or more buttons (e.g., a keyboard), mouse, joy stick, trackball, and combinations thereof. In some embodiments, I/O circuitry 110may include a multi-touch screen. Each input component of I/O circuitry110 can be configured to provide one or more dedicated control functionsfor making selections or issuing commands associated with operatingelectronic device 100.

Input/output circuitry 110 may also include any suitable outputmechanism or component for presenting information (e.g., textual,graphical, audible, and/or tactile information) to a user of electronicdevice 100. For example, I/O circuitry 110 may include any suitableoutput component or mechanism and can take a variety of forms,including, but not limited to, audio speakers, headphones, audioline-outs, visual displays, antennas, infrared ports, rumblers,vibrators, or combinations thereof.

In some embodiments, I/O circuitry 110 may include image displaycircuitry (e.g., a screen or projection system) as an output componentfor providing a display visible to the user. For example, the displaycircuitry may include a screen (e.g., a liquid crystal display (“LCD”),a light emitting diode (“LED”) display, an organic light-emitting diode(“OLED”) display, a surface-conduction electron-emitter display (“SED”),a carbon nanotube display, a nanocrystal display, any other suitabletype of display, or combination thereof) that is incorporated inelectronic device 100. As another example, the display circuitry mayinclude a movable display or a projecting system for providing a displayof content on a surface remote from electronic device 100 (e.g., a videoprojector, a head-up display, or a three-dimensional (e.g., holographic)display).

In some embodiments, display circuitry of I/O circuitry 110 can includea coder/decoder (“CODEC”) to convert digital media data into analogsignals. For example, the display circuitry, or other appropriatecircuitry within electronic device 100, may include video CODECS, audioCODECS, or any other suitable type of CODEC. Display circuitry also caninclude display driver circuitry, circuitry for driving display drivers,or both. The display circuitry may be operative to display content(e.g., media playback information, application screens for applicationsimplemented on the electronic device, information regarding ongoingcommunications operations, information regarding incoming communicationsrequests, or device operation screens) under the direction of processor102.

It should be noted that one or more input components and one or moreoutput components of I/O circuitry 110 may sometimes be referred tocollectively herein as an I/O interface 110. It should also be notedthat an input component and an output component of I/O circuitry 110 maysometimes be a single I/O component, such as a touch screen that mayreceive input information through a user's touch of a display screen andthat may also provide visual information to a user via that same displayscreen.

Motion sensor 112 may include any suitable motion sensor operative todetect movements of electronic device 100. For example, motion sensor112 may be operative to detect a motion event of a user carrying device100. In some embodiments, motion sensor 112 may include one or morethree-axis acceleration motion sensors (e.g., an accelerometer)operative to detect linear acceleration in three directions (i.e., the xor left/right direction, the y or up/down direction, and the z orforward/backward direction). As another example, motion sensor 112 mayinclude one or more single-axis or two-axis acceleration motion sensorswhich may be operative to detect linear acceleration only along each ofthe x or left/right direction and the y or up/down direction, or alongany other pair of directions. In some embodiments, motion sensor 112 mayinclude an electrostatic capacitance (e.g., capacitance-coupling)accelerometer that is based on silicon micro-machined microelectro-mechanical systems (“MEMS”) technology, including a heat-basedMEMS type accelerometer, a piezoelectric type accelerometer, apiezoresistance type accelerometer, or any other suitable accelerometer.

In some embodiments, motion sensor 112 may be operative to directlydetect rotation, rotational movement, angular displacement, tilt,position, orientation, motion along a non-linear (e.g., arcuate) path,or any other non-linear motions. For example, if motion sensor 112 is alinear motion sensor, additional processing may be used to indirectlydetect some or all of the non-linear motions. For example, by comparingthe linear output of motion sensor 112 with a gravity vector (i.e., astatic acceleration), motion sensor 112 may be operative to calculatethe tilt of electronic device 100 with respect to the y-axis. In someembodiments, motion sensor 112 may alternatively or additionally includeone or more gyro-motion sensors or gyroscopes for detecting rotationalmovement. For example, motion sensor 112 may include a rotating orvibrating element. Although the following discussion generally describessensing motion in the context of a three-axis accelerometer, it will beunderstood that the discussion may be applied to any suitable sensingmechanism or combination of sensing mechanisms provided by motion sensor112 of electronic device 100 for generating motion sensor data inresponse to detecting movement.

Processor 102 may include any processing circuitry operative to controlthe operations and performance of electronic device 100. For example,processor 102 may be used to run operating system applications, firmwareapplications, media playback applications, media editing applications,or any other application. In some embodiments, processor 102 may receiveinput signals from an input component of I/O circuitry 110 and/or driveoutput signals through an output component (e.g., a display) of I/Ocircuitry 110. Processor 102 may load a user interface program (e.g., aprogram stored in memory 104 or another device or server) to determinehow instructions or data received via an input component of I/Ocircuitry 110 or one or more motion sensors 112 may manipulate the wayin which information is provided to the user via an output component ofI/O circuitry 110. Processor 102 may associate different metadata withany of the motion data captured by motion sensor 112, including, forexample, global positioning information, a time code, or any othersuitable metadata (e.g., the current mode of device 100 or the types ofapplications being run by device 100 when the motion data was captured).

To enhance a user's experience interacting with electronic device 100,the electronic device may provide the user with an ability to generateuseful device information by moving the electronic device (i.e., amotion sensor of the electronic device) in one of various ways. Forexample, motion sensor 112 may detect movement caused by a particulartype of user motion event (e.g., a user shaking sensor 112 or a userwalking with sensor 112), and sensor 112 may then generate a particularmotion sensor data signal based on the detected movement. In someembodiments, motion sensor 112 may be a three-axis accelerometer, andthe detected movement may include, for example, movement along one ormore particular axes of the accelerometer caused by a particular usermotion event (e.g., a tilting motion detected in a z-y plane, or ashaking motion detected along any of the accelerometer axes). Sensor 112may then generate motion sensor data in response to the detectedmovement. Next, device 100 may analyze this generated motion sensor datafor distinguishing a particular type of user motion event associatedwith the sensor data and for determining whether or not to perform aspecific device operation based on the distinguished type of user motionevent (e.g., using rules or settings provided by an application run byprocessor 102).

There may be various types of user motion events that can be detected bymotion sensor 112 for generating motion sensor data to be analyzed bydevice 100. For example, user “input” motion events may be any suitabletype of user motion event associated with a user attempting to activelyinteract with device 100, such as a user shaking or tilting sensor 112to navigate a menu hierarchy of an application or to control the play ofa video game being provided by device 100. Alternatively, user “step”motion events may be any suitable type of user motion event associatedwith a user attempting to have device 100 track his or her exerciseefforts, such as a user walking or running with sensor 112 so that theamount of steps taken may be counted by device 100. Of course, othertypes of user motion events detectable by motion sensor 112 may not beintended by the user (e.g., when a user unintentionally bumps thedevice) or may not be caused by the user at all (e.g., when anearthquake moves the device).

Electronic device 100 may use any suitable approach or algorithm foranalyzing and interpreting motion sensor data generated by motion sensor112. Device 100 may analyze the motion sensor data to distinguish theparticular type of user motion event that caused the movement detectedby sensor 112 (e.g., by distinguishing between two or more differenttypes of user motion event that may have caused the movement) and todetermine whether or not to perform a specific device operation inresponse to the distinguished type of user motion event.

In some embodiments, processor 102 may load a motion sensing application(e.g., an application stored in memory 104 or provided to device 100 bya remote server via communications circuitry 106). The motion sensingapplication may provide device 100 with rules for utilizing the motionsensor data generated by sensor 112. For example, the rules maydetermine how device 100 analyzes the motion sensor data in order todistinguish the particular type of user motion event that caused themovement detected by sensor 112 (e.g., a user step event, a user inputevent, or perhaps an event not necessarily intended by the user (e.g.,an unintentional motion)). For example, the motion sensing applicationmay determine whether or not the particular type of user motion eventthat caused the movement detected by sensor 112 is associated with anintentional user input (e.g., a user step event or a user input event).Additionally or alternatively, the rules may determine how device 100handles the distinguished type of motion event (e.g., whether or notdevice 100 changes a function or setting in response to detecting thedistinguished type of motion event).

For example, device 100 may analyze generated motion sensor data todetermine a specific user input motion event associated with the sensordata and may shuffle a media playlist, skip to a previous or next mediaitem (e.g., song), change the volume of played back media, or performany other suitable operation based on the determination. In someembodiments, electronic device 100 may be configured to allow a user'sspecific input motion event to navigate menus or access functionscontextually based on currently displayed menus (e.g., on an outputdisplay component of I/O circuitry 110) or based on otherwise knownstates of the device. For example, electronic device 100 may display a“Now Playing” display, navigate a cover flow display (e.g., display adifferent album cover), scroll through various options, pan or scan to aradio station (e.g., move across preset radio stations when in a “radio”mode), or display a next media item (e.g., scroll through images) basedon the analysis of a particular motion sensor data signal generated bymotion sensor 112 in response to motion sensor 112 detecting aparticular movement caused by a particular user input motion event(e.g., a shaking motion event or a tilting motion event).

Device 100 may be configured to handle user step motion eventsdifferently than user input motion events. For example, device 100 mayanalyze the generated motion sensor data to determine a specific userstep motion event associated with the sensor data, may record the stepevent, and may then make various “exercise” determinations based on thestep event, such as the current step count of the user, the distancetraveled by the user, the pace of the user, and the like. In someembodiments, electronic device 100 may then use these step eventexercise determinations to perform any suitable device operation, suchas playing media having a tempo similar to the detected pace of theuser.

Electronic device 100 can include different power management modes forcontrolling and managing power consumption by the components of thedevice and any periphery devices that may be coupled to the device. Inparticular, electronic device 100 can include one or more particularpower management modes for reducing power consumption when the device isnot connected to a remote power supply (e.g., when the electronic deviceis not plugged into a wall socket). For example, a particular powermanagement mode of device 100 can prevent non-essential power intensiveprocesses from being performed by the device while the device is beingpowered by a battery. In some embodiments, electronic device 100 canrefrain from providing power to particular device components after acertain period of non-use. For example, electronic device 100 can turnoff a hard drive (e.g., memory 104), dim or turn off a display (e.g., anoutput component of I/O circuitry 110), or place a processor (e.g.,processor 102) in a low-power “sleep” or “hibernate” mode. Some or allof the power management settings can be set automatically or by a userof device 100 (e.g., the user may define the duration or conditionbefore device 100 switches between particular power management modes).

For example, as shown in FIG. 2, power supply component 108 of device100 may include a power management unit (“PMU”) 118 coupled to at leastone source of power, such as battery 120 via PMU-battery power line 119.In some embodiments, PMU 118 may include a microcontroller and can beconfigured to govern the power functions of device 100. PMU 118 mayinclude its own memory (e.g., loaded with software and/or firmware),processor with input/output functionality and timers, as well as one ormore converters for measuring the power provided by battery 120. In someembodiments, PMU 118 may also include a backup power source that canpower components of PMU 118 even when device 100 is completely shutdown, such that, for example, the current time of a real-time clock ismaintained. PMU 118 may be responsible for coordinating certainfunctions of device 100, including, but not limited to, monitoring powerconnections and battery charges, controlling power provided to othercomponents of the device, shutting down certain components of the devicewhen they are left idle or deemed to be currently unnecessary toproperly operate the device, regulating a real-time clock of the device,and controlling various power management modes of the device.

As mentioned, PMU 118 may provide power and communicate otherinformation to various components of device 100. For example, as shownin FIG. 2, PMU 118 may be able to provide power to processor 102 via aPMU-processor power line 131, to memory 104 via a PMU-memory power line133, to I/O circuitry 110 via a PMU-I/O power line 135, and to motionsensor 112 via a PMU-sensor power line 137. PMU 118 may also exchangeinformation with various components, such as with processor 102 via aPMU-processor data line 141, with memory 104 via a PMU-processor dataline 143, with I/O circuitry 110 via a PMU-I/O data line 145, and withmotion sensor 112 via a PMU-sensor data line 147, for example.Similarly, data may be exchanged between processor 102 and memory 104via a processor-memory data line 151, between processor 102 and I/Ocircuitry 110 via a processor-I/O data line 153, and between processor102 and motion sensor 112 via a processor-sensor data line 155. In someembodiments, certain power lines and data lines may be combined into asingle communications line.

FIGS. 3(A-D) show a flowchart of an illustrative process 300 forutilizing motion sensor data in various power management modes to reducethe amount of power required by an electronic device. Process 300 mayinclude two or more power management modes, each of which may beemployed by an electronic device in certain situations. For example, asshown in FIG. 3, process 300 may provide for a device to operate in oneof four different power management modes (e.g., a high active power modeat steps 302-310 of FIG. 3A, a low active power mode at steps 312-324 ofFIG. 3B, a sleep power mode at steps 326-334 of FIG. 3C, and a hibernatepower mode at steps 336-340 of FIG. 3D), although in other embodimentsthere may be more or fewer power management modes.

Process 300 is described with reference to the various device componentsof electronic device 100 of FIGS. 1 and 2, although any other suitableelectronic device may operate according to the power mode management ofprocess 300. Moreover, process 300 is often described with specificreference to a motion sensing application that may or may not requireutilization of a display output component of I/O circuitry 110 of device100, although process 300 may be followed by a device running anysuitable application that may or may not use any suitable devicecomponent.

Because device 100 may be constantly switching between various powermodes, process 300 may not have a distinct beginning and ending (e.g.,device 100 may always be switching between power modes, may not alwaysbegin in the same mode, and may be turned off when in any of the modes).However, device 100 may begin in a high active mode (e.g., at step 302)when first turned on. For example, at step 302, an electronic device maybe operating in a first power management mode, such as a high activepower mode. In some embodiments, electronic device 100 may be operatingin a high active power mode when power is being provided to some or allof the components of device 100. For example, with respect to FIG. 2,device 100 may be operating in a high active power mode when PMU 118 isproviding power (e.g., from battery 120) to processor 102, memory 104,I/O circuitry 110, and motion sensor 112 via respective power lines 131,133, 135, and 137.

While device 100 is operating in the high active power mode, one or moreapplications may be run by processor 102, such as an application loadedinto processor 102 from memory 104 via data line 151. As mentioned,processor 102 may include any processing circuitry operative to controlthe operations and performance of electronic device 100. For example,processor 102 may be used to run operating system applications, firmwareapplications, media playback applications, media editing applications,or any other application. In some embodiments, processor 102 may receiveinput signals from an input component (e.g., a scroll wheel or touchscreen) of I/O circuitry 110 and/or drive output signals through anoutput component (e.g., a display) of I/O circuitry 110. Processor 102may load a user interface program (e.g., a program stored in memory 104or another device or server) to determine how instructions or datareceived via an input component of I/O circuitry 110 or one or moremotion sensors 112 may manipulate the way in which information isprovided to the user via an output component of I/O circuitry 110.

For example, with respect to embodiments involving the use of motionsensor data generated by motion sensor 112, a motion sensing application(e.g., an application stored in memory 104 or provided to device 100 bya remote server via communications circuitry 106) may be run byprocessor 102 while device 100 operates in the high active power mode.The motion sensing application may provide device 100 with rules forprocessing the motion sensor data generated by sensor 112. For example,the rules may determine how device 100 analyzes the motion sensor datain order to distinguish the particular type of user motion event thatcaused the movement detected by sensor 112 (e.g., a user step event, auser input event, or perhaps an event not necessarily intended by theuser (e.g., an unintentional motion event)). Additionally oralternatively, the rules may determine how device 100 handles thedistinguished type of motion event (e.g., whether or not device 100changes a function or setting of the device in response to detecting thedistinguished type of motion event, such as updating a display screenpresented to the user or updating the count of user steps detected).Therefore, at step 302, an application (e.g., a motion sensingapplication) may be run by processor 102 and processor 102 may analyzeapplication inputs and determine appropriate application outputs.

For example, when in the high active power mode at step 302, processor102 may be loaded with a motion sensing application and may receiveapplication inputs, such as motion sensor data from sensor 112 via dataline 155. Processor 102 may use the motion sensing application toanalyze the motion sensor data in order to distinguish the particulartype of user motion event that caused the movement detected by sensor112. Then processor 102 may use the motion sensing application todetermine how device 100 should handle the distinguished type of motionevent. For example, processor 102 may distinguish from the motion sensordata a specific user input event (e.g., a tilting event), and processor102 may also determine that the specific user input event requires thatdevice 100 display a particular menu screen.

Therefore, processor 102 may generate the particular menu screen, forexample, in conjunction with data provided by memory 104 via data line151, and may then send that menu screen data to a display screen outputcomponent of I/O circuitry 110 (e.g., display output component 111 ofFIG. 2) via data line 153 for display to the user.

It is to be understood that various other types of applications may alsobe run by processor 102 during the high active power mode and utilizedat step 302. For example, user inputs generated by an input component ofI/O circuitry 110 (e.g., keyboard input component 109 of FIG. 2) mayalso be received by processor 102 and used to dictate certain deviceresponses. For example, when operating in the high active power mode orany of the other power modes of process 300, specific user inputs may bereceived that may instruct or require device 100 to switch to any otherpower management mode. For example, at any suitable point during process300, device 100 may receive a user input associated with a userinstruction to enter a sleep mode.

At certain points, however, device 100 may switch from the first powermanagement mode (e.g., the high active power mode of step 302) toanother type of power management mode. For example, it may be determinedthat one or more certain components of device 100 are not currentlybeing utilized by the type or types of applications being run byprocessor 102. In some embodiments, it may be determined that processor102 is running an application that does not currently require the use ofdisplay output component 111 of I/O circuitry 110. Therefore, device 100may stop providing power to display output component 111, or mayotherwise at least partially deactivate that output component, until itis determined that the output component may once again be required byprocessor 102.

Keeping with the specific example of a motion sensing application beingused by processor 104, in order to determine whether or not a component(e.g., a display output component 111) is not currently required,process 300 may advance to step 304. At step 304, device 100 maydetermine whether or not motion sensor data has recently beendistinguished by processor 102 as a motion event requiring use ofdisplay 111. For example, at step 304, it may be determined whether ornot received motion sensor data that requires display 111 has beenprocessed within the past duration of time “X” (e.g., whether or notdisplay 111 has been altered based on received motion sensor data at anypoint within the last 5 minutes or any other suitable duration of time).The duration of time X may be any suitable duration of time for whichthe non-use of display 111, or any other suitable component, by themotion sensing application may trigger device 100 to exit its currentpower management mode (e.g., its high active power mode). If it isdetermined at step 304 that display 111 has been utilized by the motionsensing application of processor 102 within the past duration of time X,process 300 may return from step 304 back to the normal operation ofdevice 100 within the high active power mode at step 302.

However, if it is determined at step 304 that display 111 has not beenutilized by the motion sensing application of processor 102 within thepast duration of time X, process 300 may proceed from step 304 to step306. At step 306, it may be determined whether or not any motion sensordata has been processed by the motion sensing application of processor102 within the past duration of time “Y”. The duration of time Y may beany suitable duration of time for which the non-use of processor 102 foranalyzing motion sensor data from sensor 112 may trigger device 100 toenter a particular new power management mode. Time Y may be less than,equal to, or greater than time X. Both time X and time Y may be definedby the motion sensing application, by other programs or components ofdevice 100, by the user of device 100, or by any other suitablemechanism.

If it is determined at step 306 that processor 102 has analyzed certainmotion sensor data within the past duration of time Y, process 300 mayproceed to step 308, where device 100 may prepare to enter a secondpower management mode (e.g., a low active power mode). However, if it isdetermined at step 306 that processor 102 has not analyzed any motionsensor data within the past duration of time Y, process 300 may proceedto step 310, where device 100 may prepare to enter a third powermanagement mode (e.g., a sleep power mode).

First, if process 300 proceeds from step 306 to step 308, processor 102and a motion sensing application may still be actively processing motionsensor data (e.g., at least with respect to a cut-off frequency based ontime Y), but may not be actively processing motion sensor data utilizedfor manipulating display 111 (e.g., at least with respect to a cut-offfrequency based on time X). Therefore, at step 308, device 100 mayprepare to enter a second power management mode (e.g., a low activepower mode) by stopping to provide power to display 111 or by otherwiseat least partially deactivating display 111 in order to reduce the powerrequirements of device 100. For example, PMU 118 may stop providingpower to at least portions of display 111 via power line 135.Alternatively or additionally, processor 102 and/or PMU 118 may stopproviding data to at least portions of display 111 via respective datalines 153 and 145. Process 300 may then proceed to step 312 of FIG. 3B,and the motion sensing application may continue to be run by processor102 while device 100 operates in a low active power mode with display111 at least partially deactivated.

Alternatively, if process 300 proceeds from step 306 to step 310,processor 102 and a motion sensing application may not be activelyprocessing motion sensor data (e.g., at least with respect to a cut-offfrequency based on time Y), and thus may not be actively processingmotion sensor data utilized for manipulating display 111 or any othercomponent of device 100. Therefore, at step 310, device 100 may prepareto enter a third power management mode (e.g., a sleep power mode) inorder to reduce the power requirements of device 100 by stopping toprovide power to at least a portion of display 111 or by otherwise atleast partially deactivating display 111, as well as by at leastpartially deactivating some or all of the other components that may beactive due to the motion sensing application. For example, at step 310,device 100 may prepare to enter the sleep power management mode byunloading the motion sensor application from processor 102 (e.g., viadata line 151 back into memory 104), and by at least partiallydeactivating or powering down processor 102 and/or memory 104. PMU 118may stop providing power to at least portions of processor 102 and/ormemory 104 via respective power lines 131 and 133. Alternatively oradditionally, PMU 118 may stop providing data to at least portions ofprocessor 102 and/or memory 104 via respective data lines 141 and 143.Process 300 may then proceed to step 326 of FIG. 3C, and device 100 mayoperate in the sleep power mode.

Continuing now with device 100 operating in a low active power mode atstep 312, processor 102 may be running the motion sensing applicationand may receive application inputs, such as motion sensor data fromsensor 112 via data line 155. Step 312 may be similar to step 302 ofFIG. 3A, but one or more components may be at least partiallydeactivated for reducing the power requirements of device 100 (e.g.,display 111, as described with respect to step 308). At step 314, device100 may determine whether or not new motion sensor data has beenreceived by processor 102. If new motion sensor data has been received,process 300 may advance to step 316 and processor 102 may use the motionsensing application to analyze the motion sensor data in order todistinguish the particular type of user motion event that caused themovement detected by sensor 112. Processor 102 may then use the motionsensing application to determine how device 100 should handle thedistinguished type of motion event and advance to step 318.

At step 318, device 100 may determine whether or not processor 102 hasdistinguished from the received motion sensor data (e.g., at step 316) auser motion event that requires utilization of one or more devicecomponents that are not appropriately activated in the current powermanagement mode (i.e., the low active power mode). For example, device100 may determine at step 318 whether or not processor 102 hasdistinguished a user motion event that requires utilization of display111, such as a user motion event that is determined to require device100 to display a particular menu screen on display 111. If it isdetermined at step 318 that processor 102 has distinguished from the newmotion sensor data a user motion event that requires display 111,process 300 may proceed to step 320 and device 100 may prepare to enterfirst power management mode (e.g., high active power mode). However, ifit is determined at step 318 that the motion event distinguished byprocessor 102 does not require display 111, process 300 may return tostep 312 and device 100 may respond to the distinguished motion eventwhile the device remains in its low active power mode.

First, if process 300 proceeds from step 318 to step 320, a motionsensing application and processor 102 may be actively distinguishinguser motion events from received motion sensor data, but one or moreparticular device components required to respond to a certaindistinguished user motion event (e.g., display 111) may not be properlyactivated. Therefore, at step 320, device 100 may prepare to enter thefirst power management mode (e.g., the high active power mode) bystarting to provide power to display 111 or by otherwise at leastpartially activating display 111 in order to allow the motion sensingapplication to properly process the distinguished user motion eventrequiring utilization of display 111. For example, PMU 118 may beginproviding power to at least portions of display 111 via power line 135.Alternatively or additionally, processor 102 and/or PMU 118 may startproviding data to at least portions of display 111 via respective datalines 153 and 145. Process 300 may then proceed to step 302 of FIG. 3A,and the motion sensing application may continue to be run by processor102 while device 100 operates in the high active power mode with display111 activated for proper use by the motion sensing application.

Alternatively, if process 300 returns from step 318 to step 312, themotion sensing application and processor 102 may be activelydistinguishing user motion events from received motion sensor data, butthe one or more particular device components required to respond to therecently distinguished user motion event may already be appropriatelyactivated in the current power management mode (i.e., the low activepower mode). For example, device 100 may determine at step 318 that therecently distinguished user motion event does not require utilization ofdisplay 111, such as a user step motion event that may be determined bythe motion sensing application only to require device 100 to update acounter indicative of the number of user steps that have been detected.Therefore, at step 312, the motion sensing application may continue tobe run by processor 102 while device 100 remains operating in the lowactive power mode.

It is to be reiterated that process 300 is presented to describespecific embodiments for utilizing multiple power management modes withrespect to a motion sensing application that may or may not utilizedisplay 111. However, it is to be understood that process 300 mayalternatively be followed for various other types of applications thatmay or may not use various other types of device components. Moreover, amotion sensing application may or may not use various other types ofdevice components in addition to or as opposed to display 111. Forexample, various other components may be deactivated for entering thelow active power mode at step 308 and it may be determined whether ornot one or more of these other deactivated components are utilized bythe distinguished motion event at step 318 and need to be reactivated atstep 320. However, the specific embodiments relating to a motion sensingapplication and the optional use of display 111 are referenced only tomore clearly describe the features of process 300.

However, if at step 314 it is determined that new motion sensor data hasnot been received by processor 102, process 300 may advance to step 322.At step 322, it may be determined whether or not any motion sensor datahas been processed by the motion sensing application of processor 102within the past duration of time “Z”. The duration of time Z may be anysuitable duration of time for which the non-use of processor 102 foranalyzing motion sensor data from sensor 112 may trigger device 100 toenter a particular new power management mode. Time Z may be less than,equal to, or greater than time X of step 304 and/or time Y of step 306.Like time X and time Y, time Z may be defined by the motion sensingapplication, by other programs or components of device 100, by the userof device 100, or by any other suitable mechanism. If it is determinedat step 322 that processor 102 has analyzed motion sensor data withinthe past duration of time Z, process 300 may return to step 312, wherethe motion sensing application may continue to be run by processor 102while device 100 remains operating in the low active power mode.

However, if it is determined at step 322 that processor 102 has notanalyzed any motion sensor data within the past duration of time Z,process 300 may proceed to step 324, where device 100 may prepare toenter a third power management mode (e.g., a sleep power mode or astandby power mode). For example, if process 300 proceeds from step 322to step 324, processor 102 and a motion sensing application may not beactively processing motion sensor data (e.g., at least with respect to acut-off frequency based on time Z), and thus may not still be activelyprocessing motion sensor data utilized for manipulating display 111 orany other component of device 100. Therefore, at step 324, device 100may prepare to enter the sleep power mode in order to reduce the powerrequirements of device 100 by at least partially deactivating some orall of the other components that may be active due to the motion sensingapplication. For example, at step 324, device 100 may prepare to enterthe sleep power management mode by unloading the motion sensorapplication from processor 102 (e.g., via data line 151 back into memory104), and by at least partially deactivating or powering down processor102 and/or memory 104. PMU 118 may stop providing power to at leastportions of processor 102 and/or memory 104 via respective power lines131 and 133. Alternatively or additionally, PMU 118 may stop providingdata to at least portions of processor 102 and/or memory 104 viarespective data lines 141 and 143. Process 300 may then proceed to step326 of FIG. 3C, and device 100 may operate in the sleep power mode.

Continuing now with device 100 operating in a sleep power mode at step326, processor 102 may not be running a motion sensing application andat least portions of processor 102 may be deactivated. The sleep powermode may be a power mode that requires less, and often significantlyless, power than the low active power mode. The sleep mode may savesignificant electrical consumption as compared to leaving many or all ofthe device components fully powered and idle, but may also allow theuser to avoid having to reset programming codes or wait for the deviceto completely reboot. When operating in the sleep mode, device 100 maydiscontinue power to most of the device components (e.g., using PMU118). However, certain components may still be activated in sleep mode,such as a RAM component of memory 104 that may be used to restore device100 to its previous configuration once the sleep mode is exited. Atleast portions of PMU 118 may also remain activated during the sleeppower mode such that device 100 may properly wake up from the sleep modein response to certain events (e.g., a user input via input component109 of I/O circuitry 110).

In some embodiments, one or more additional components may also remainactivated during the sleep power mode. For example, at least portions ofmotion sensor 112 may remain active during the sleep power mode suchthat certain user motion events may be detected. PMU 118 may providepower to at least a portion of motion sensor 112 via power line 137.Alternatively or additionally, motion sensor 112 may be provided withits own independent source of power 113 (i.e., not battery 120 via PMU118) that may allow at least portions of sensor 112 to remain activatedduring the sleep power mode or any other power management mode of device100.

Process 300 may proceed to step 328 when device 100 is operating in thesleep power mode. At step 328, it may be determined whether or notmotion sensor 112 has recently detected a motion event of a magnitudethat exceeds a certain motion magnitude threshold “T”. The magnitude ofthreshold T may be any suitable magnitude threshold above which thedetected motion event may generate motion sensor data to be analyzed bya motion sensing application for potential device operation and thus maytrigger device 100 to enter a particular new power management mode.Threshold T may be defined by motion sensor 112, by a motion sensingapplication, by other programs or components of device 100, by the userof device 100, or by any other suitable mechanism. Threshold T may beset to avoid processing minor incidental movements of motion sensor 112but such that other types of movement of motion sensor 112 may bedetected when device 100 is in the sleep mode and then properlyanalyzed.

If it is determined at step 328 that motion sensor 112 has recentlydetected a motion event of a magnitude that exceeds threshold T, process300 may advance to step 330. Therefore, at step 330, device 100 mayprepare to enter the second power management mode (e.g., the low activepower mode) for analyzing with a motion sensing application the motionsensor data generated in response to the recently detected motion event.For example, motion sensor 112 may send a signal to PMU 118 (e.g., viapower line 137 and/or data line 147) that may prompt PMU 118 to allow aproper motion sensing application to be loaded by device 100. Forexample, PMU 118 may provide data and/or power to at least portions ofprocessor 102 via respective lines 131 and 141 and/or to at leastportions of memory 104 via respective lines 133/143 in order for aproper motion sensing application to be loaded into processor 102.Moreover, a portion of memory 104 (e.g., a RAM component of memory 104as described with respect to step 324) may be utilized to restore device100 to its previous configuration before the sleep mode had beenentered. Process 300 may then proceed to step 312 of FIG. 3B, wheredevice 100 operates in the low active power mode and the motion sensingapplication may be run by processor 102 for analyzing (e.g., at step316) the motion sensor data generated by motion sensor 112 in responseto the motion event recently detected at step 328. In some embodiments,if this recently detected motion event is analyzed at step 316 to be anevent not associated with an intentional user input, process 300 mayreturn device 100 directly to the sleep mode.

However, if at step 328 it is determined that motion sensor 112 has notrecently detected a motion event of a magnitude that exceeds thresholdT, process 300 may advance to step 332. At step 332, it may bedetermined whether or not device 100 has been operating in the sleepmode for a duration of time “S”. The duration of time S may be anysuitable duration of time for which the non-detection of a motion eventof a magnitude exceeding threshold T may trigger device 100 to enter aparticular new power management mode, for example. Time S may be lessthan, equal to, or greater than time X of step 304, time Y of step 306,and/or time Z of step 322. Like times X, Y, and Z, time S may be definedby motion sensor 112, by a motion sensing application, by other programsor components of device 100, by the user of device 100, or by any othersuitable mechanism. If it is determined at step 332 that device 100 hasnot yet been operating in the sleep mode for the duration of time S,process 300 may return to step 326 and device 100 may remain in thesleep mode.

However, if it is determined at step 332 that device 100 has beenoperating in the sleep mode for the duration of time S, process 300 mayproceed to step 334, where device 100 may prepare to enter a fourthpower management mode (e.g., a hibernate power mode). For example, ifprocess 300 proceeds from step 332 to step 334, motion sensor 112 maynot be actively detecting motion events of a magnitude that exceedthreshold T (e.g., at least with respect to a cut-off frequency based ontime S), and thus may be considered inactive with respect to the sleeppower mode. Therefore, at step 334, device 100 may prepare to enter thehibernate power mode in order to reduce the power requirements of device100 even more by deactivating some or all of the device components thatmay still be at least partially activated in the sleep power mode. Forexample, PMU 118 may stop providing power to a RAM component of memory104 that may have been used to restore device 100 to its previousconfiguration once the sleep mode is exited (e.g., as described withrespect to step 324 and step 330). However, before that is done, atleast portions of the contents of the RAM may be written to anon-volatile storage portion of memory 104 as a file or a separatepartition such that device 100 may properly be restored from thehibernate mode in response to certain events (e.g., a user input viainput component 109 of I/O circuitry 110). Process 300 may then proceedto step 336 of FIG. 3D, and device 100 may operate in the hibernatepower mode.

Continuing now with device 100 operating in a hibernate power mode atstep 336, PMU 118 may not be activating at least a portion of RAM, forexample, and the hibernate power mode may be a power mode that requireseven less power than the sleep power mode. In some embodiments, at leasta portion of PMU 118 may remain activated during the hibernate powermode such that device 100 may properly wake up from the hibernate modein response to certain events (e.g., a user input via input component109 of I/O circuitry 110).

In some embodiments, one or more additional components may also remainactivated during the hibernate power mode. For example, at leastportions of motion sensor 112 may remain active during the hibernatepower mode such that certain user motion events may still be detected.PMU 118 may provide power to at least a portion of motion sensor 112 viapower line 137. Alternatively or additionally, motion sensor 112 may beprovided with its own independent source of power 113 (i.e., not battery120 via PMU 118) that may allow at least portions of sensor 112 toremain activated during the hibernate power mode or any other powermanagement mode of device 100.

Process 300 may proceed to step 338 when device 100 is operating in thehibernate power mode. At step 338, it may be determined whether or notmotion sensor 112 has recently detected a motion event of a magnitudethat exceeds a certain motion magnitude threshold “M”. In someembodiments, motion sensor 112 and PMU 118 may be the only components ofdevice 100 that are not completely deactivated in the hibernate powermode (e.g., processor 102 may be completely deactivated and no softwareapplications may be running in the hibernate power mode). Therefore,only sensor 112 itself may be able to determine whether or not it hasdetected a motion event of a magnitude that exceeds threshold M.Moreover, in some embodiments, motion sensor 112 may only be providedwith enough power in hibernate power mode to detect motion events of amagnitude that exceeds threshold M, but not enough power to correctlylog all the motion parameters detected, for example. Therefore, inresponse to detecting a motion event of a magnitude that exceedsthreshold M, motion sensor 112 may generate a “wake up” signal andtransmit such a signal to PMU 118 (e.g., via line 137 and/or line 147).In response to receiving such a signal, PMU 118 may wake up otherportions of device 100 to analyze motion sensor data generated inresponse to the motion event that woke up the PMU unit.

The magnitude of threshold M may be any suitable magnitude thresholdabove which motion events may be detected and thus may trigger device100 to enter a particular new power management mode (e.g., by triggeringmotion sensor 112 to generate and transmit a wake up signal to PMU 118).Threshold M may be less than, equal to, or greater than threshold T ofstep 328, and threshold M may be defined by motion sensor 112, by amotion sensing application, by other programs or components of device100, by the user of device 100, or by any other suitable mechanism.Threshold M may be set to avoid processing minor incidental movements ofmotion sensor 112 but such that other types of movement of motion sensor112 may be detected when device 100 is in the hibernate mode and thenproperly analyzed.

If it is determined at step 338 that motion sensor 112 has recentlydetected a motion event of a magnitude that exceeds threshold M (e.g.,if motion sensor 112 has generated and transmitted a wake up signal toPMU 118), process 300 may advance to step 340. Therefore, at step 340,device 100 may prepare to enter the second power management mode (e.g.,the low active power mode) for analyzing with a motion sensingapplication the motion sensor data generated in response to the recentlydetected motion event. For example, motion sensor 112 may send a wake upsignal to PMU 118 (e.g., via power line 137 and/or data line 147) thatmay prompt PMU 118 to allow a proper motion sensing application to beloaded by device 100. In response to receiving such a wake up signal,for example, PMU 118 may provide data and/or power to at least portionsof processor 102 via respective lines 131 and 141 and/or to at leastportions of memory 104 via respective lines 133/143 in order for aproper motion sensing application to be loaded into processor 102.

Moreover, a portion of memory 104 (e.g., a file or a separate partitionof a non-volatile storage portion of memory 104 as described withrespect to step 334) may be utilized to restore device 100 to itsprevious configuration before the hibernate mode had been entered.Process 300 may then proceed to step 312 of FIG. 3B, where device 100operates in the low active power mode and the motion sensing applicationmay be run by processor 102 for analyzing (e.g., at step 316) the motionsensor data generated by motion sensor 112 in response to the motionevent recently detected at step 338. In some embodiments, if thisrecently detected motion event is analyzed at step 316 to be an eventnot associated with an intentional user input, process 300 may returndevice 100 directly to the hibernate mode.

However, if at step 338 it is determined that motion sensor 112 has notrecently detected a motion event of a magnitude that exceeds thresholdM, process 300 may return to step 336 and device 100 may remain in thehibernate mode.

It is understood that the steps shown in process 300 of FIGS. 3A-3D aremerely illustrative and that existing steps may be modified or omitted,additional steps may be added, and the order of certain steps may bealtered.

As mentioned, when switching to the low active power mode either fromthe sleep power mode (e.g., at step 330) or from the hibernate powermode (e.g., at step 340), motion sensor 112 may send a signal to PMU 118that may prompt PMU 118 to allow a proper motion sensing application tobe loaded by device 100. For example, PMU 118 may provide data and/orpower to at least portions of processor 102 and/or to at least portionsof memory 104 in order for a proper motion sensing application to beloaded into processor 102. In some embodiments, when a motion sensingapplication or various other types of applications are loaded and run byprocessor 102, the application may provide device 100 with rules forinitially or automatically or otherwise activating one or more devicecomponents. For example, when a motion sensing application is initiallyloaded into processor 102, the motion sensing application may beconfigured to instruct device 100 to activate display output component111 of I/O circuitry 110.

However, in order for device 100 to operate in the low power mode, inaccordance with some embodiments, display 111 should remain at leastpartially deactivated. Therefore, when switching to the low active powermode either from the sleep power mode (e.g., at step 330) or from thehibernate power mode (e.g., at step 340), motion sensor 112 may send asignal to PMU 118 (e.g., via power line 137 and/or data line 147) thatmay prompt PMU 118 to allow a proper motion sensing application to beloaded by device 100 while also providing motion sensing applicationwith information for maintaining at least a portion of display 111deactivated. For example, when switching to the low active power modeeither from the sleep power mode or from the hibernate power mode,motion sensor 112 may send a flag signal to PMU 118 that may set a flagin a flag register of PMU 118 (e.g., flag register 117 of PMU 118 ofFIG. 2). This flag signal may also prompt PMU 118 to allow the propermotion sensing application to be loaded by device 100. Alternatively,this flag signal may be a different signal than a signal sent by motionsensor 112 for prompting PMU 118 to allow the proper motion sensingapplication to be loaded by device 100. Flag register 117 may be anysuitable type of register provided by PMU 118, such as a scratchregister.

Once PMU 118 is prompted to direct the motion sensing application to beloaded, processor 102 may detect the status of flag register 117 of PMU118 (e.g., via line 131 and/or line 141) and may determine whether ornot to selectively ignore a rule of the motion sensing applicationinstructing processor 102 to activate display 111. Moreover, whenswitching from the low active power mode either to the high active powermode (e.g., at step 320) or to the sleep power mode (e.g., at step 324),flag register 117 may be cleared. Therefore, when switching to the lowactive power mode, motion sensor 112 may provide device 100 with theability to selectively ignore certain instructions of a motion sensingapplication loaded into processor 102 in order to maintain certaincomponents at least partially deactivated in the low power managementmode.

In some embodiments, a process for utilizing motion sensor data invarious power management modes may avoid operating in an active powermode for processing all usable motion sensor data. For example, once aparticular motion event or set of motion events is distinguished by amotion sensing application at a consistent rate for a particular periodof time, a device may enter an inactive power mode (e.g., a sleep orhibernate mode) and may only enter an active power mode (e.g., a highactive power mode or a low active power mode) to analyze motion sensordata during certain intervals of time. If a motion sensing applicationhas detected user step motion events that consistently indicate that auser is walking at a particular rate (e.g., 60 steps per minute), thedevice may stop analyzing all generated motion sensor data and may enteran inactive power mode. The device may then re-enter an active powermode at particular intervals (e.g., for 15 seconds every minute) toanalyze the motion sensor data generated during that interval. If thesensor data analyzed during that interval also indicates that the useris walking at the same particular rate (e.g., if 15 steps are detectedduring that 15 second interval), the motion sensor application mayproceed as if it had analyzed sensor data for the entire minute and mayact accordingly. For example, device 100 may record that the user hastaken 60 steps in the past minute, even though the motion sensingapplication may have only detected the 15 steps taken during the last 15seconds of that minute. This may allow the device to operate in anactive mode for only 15 seconds out of a minute and in an inactive modefor 45 seconds out of the minute, while recording or otherwise operatingin response to motion events that may occur during the entire minute.

FIG. 4 shows a flowchart of an illustrative process 400 for utilizingmotion sensor data in various power management modes to reduce theamount of power required by an electronic device based on consistentdetection of a particular motion event. Process 400 may include two ormore power management modes, each of which may be employed by anelectronic device in certain situations. For example, as shown in FIG.4, process 400 may provide for a device to operate in one of twodifferent power management modes (e.g., an active power mode (e.g., atsteps 402-406 and 412-416) and an inactive power mode (e.g., at steps408 and 410) of FIG. 4, although in other embodiments there may be moreor fewer power management modes.

Process 400 is described with reference to the various device componentsof electronic device 100 of FIGS. 1 and 2, although any other suitableelectronic device may operate according to the power mode management ofprocess 400. Moreover, process 400 is often described with specificreference to a motion sensing application that may detect user steppingmotion events, although process 400 may be followed by a device runningany suitable application for detecting any suitable motion event.

Because device 100 may be constantly switching between various powermodes, process 400 may not have a distinct beginning and ending (e.g.,device 100 may always be switching between power modes, may not alwaysbegin in the same mode, and may be turned off when in any of the modes).However, device 100 may begin in an active mode (e.g., at step 402) whenfirst turned on. For example, at step 402, an electronic device may beoperating in a first power management mode, such as an active powermode. The active power mode of process 400 may be similar to both thehigh active power mode and the low active power mode of process 300. Forexample, with respect to embodiments involving the use of motion sensordata generated by motion sensor 112, a motion sensing application (e.g.,an application stored in memory 104 or provided to device 100 by aremote server via communications circuitry 106) may be run by processor102 while device 100 operates in the active power mode of process 400.Certain device components may be at least partially deactivated in theactive power mode of process 400 (e.g., as display 111 may be at leastpartially deactivated in the low active power mode of process 300).

At certain points, however, device 100 may switch from the active powermode to another type of power management mode. For example, it may bedetermined that the motion sensor data processed during a certaininterval of time has provided the same user motion events at aconsistent rate. For example, it may be determined from the processedmotion sensor data that a user has been taking steps at a consistentrate for a certain period of time. Therefore, the device may be wastingpower resources by constantly analyzing motion sensor data that hasbecome consistent and predictable.

Keeping with the specific example of a motion sensing application beingused by processor 104, in order to determine whether or not theprocessed motion sensor data is providing consistent results, process400 may advance to step 404. At step 404, device 100 may determinewhether or not the processed motion sensor data has provided consistentdetection of a certain motion event or a certain set of motion events“E” occurring at a rate “R” for at least a particular duration of time“D”. The duration of time D may be any suitable duration of time duringwhich detection of a certain motion event E at a consistent rate R maytrigger device 100 to exit its current power management mode (e.g., itsactive power mode). Similarly, the rate “R” may be any suitable rate atwhich consistent detection of a certain motion event E over a durationof time D may trigger device 100 to exit its current active powermanagement mode.

Both rate R and time D may be defined by the motion sensing application,by other programs or components of device 100, by the user of device100, or by any other suitable mechanism. The motion event or set ofmotion events E may be any suitable motion event, such as a steppingmotion event or set of stepping motion events (e.g., a left foot liftingmotion event and a right foot landing motion event). If it is determinedat step 404 that the processed motion sensor data has not providedconsistent detection of motion events E occurring at a rate R for atleast a particular duration of time D, process 400 may return from step404 back to the normal operation of device 100 within the active powermode at step 402.

However, if it is determined at step 404 that the processed motionsensor data has provided consistent detection of motion events Eoccurring at a rate R for at least a particular duration of time D,process 400 may proceed from step 404 to step 406. At step 406, device100 may prepare to enter a second power management mode (e.g., aninactive power mode). The inactive power mode of process 400 may besimilar to the sleep mode or the hibernate mode of process 300. Device100 may prepare to enter the inactive power mode at step 406 of process400 in order to reduce the power requirements of device 100 by at leastpartially deactivating some or all of the device components that may beactive due to the motion sensing application in the active power mode.For example, at step 406, device 100 may prepare to enter the inactivepower management mode by unloading the motion sensor application fromprocessor 102 (e.g., via data line 151 back into memory 104), and by atleast partially deactivating or powering down processor 102 and/ormemory 104. PMU 118 may stop providing power to at least portions ofprocessor 102 and/or memory 104 via respective power lines 131 and 133.Alternatively or additionally, PMU 118 may stop providing data to atleast portions of processor 102 and/or memory 104 via respective datalines 141 and 143. Process 400 may then proceed to step 408, and device100 may operate in the inactive power mode.

At step 408, device 100 may operate in the inactive power mode for aduration of time “F”. Then, process 400 may proceed to step 410 wheredevice 100 may prepare to reenter the active power mode for continuingto analyze with a motion sensing application the motion sensor databeing generated by motion sensor 112. For example, PMU 118 may allow aproper motion sensing application to be loaded by device 100 at step410. For example, PMU 118 may provide data and/or power to at leastportions of processor 102 via respective lines 131 and 141 and/or to atleast portions of memory 104 via respective lines 133/143 in order for aproper motion sensing application to be loaded into processor 102.Process 400 may then proceed to step 412, where device 100 may operatein the active power mode for a duration of time “N” and the motionsensing application may be run by processor 102 for processing themotion sensor data generated by motion sensor 112.

Process 400 may then proceed from step 412 to step 414. At step 414,device 100 may determine whether or not the motion sensor data processedduring the past duration of time N has provided consistent detection ofthe motion events E occurring at the rate R (i.e., the same motionevents E and the same rate R as described with respect to step 404). Theduration of time N may be at least equal to any suitable duration oftime during which a determination of consistent detection of motionevents E at rate R may be made. If it is determined at step 414 that theprocessed motion sensor data has not provided consistent detection ofmotion events E occurring at rate R during the past duration of time N,process 400 may return back to the normal operation of device 100 withinthe active power mode at step 402. This may occur if motion events E aredetected to occur at a rate not substantially similar to R or if othertypes of motion events not substantially similar to events E aredetected.

However, if it is determined at step 414 that the motion sensor dataprocessed during the past duration of time N has provided consistentdetection of motion events E occurring at rate R, process 400 mayproceed from step 414 to step 416. At step 416, device 100 may not onlyrespond to each one of the number of motion events E detected duringtime N at rate R, but device 100 may also respond to the number ofmotion events E assumed to have occurred at rate R during time F (i.e.,the duration of time that device 100 operated in the inactive power modeat step 408). For example, the number of motion events E detected duringtime N may equal the product of time N and rate R, and the number ofmotion events E assumed to have occurred at rate R during time F mayequal the product of time F and rate R.

For example, if 15 user stepping events E were detected during a time Nequal to 15 seconds (i.e., such that rate R equals one step per second),and time F equals 45 seconds, the number of motion events E assumed tohave occurred at rate R during time F would be 45 (i.e., the product of45 seconds and the rate of 1 step per second). Therefore, device 100 mayoperate at step 416 as if 60 user stepping events E were detected duringthe previous 60 seconds (i.e., the duration of time equal to N+F, whichmay be the duration of time for process 400 to advance from step 406 tostep 414). In some embodiments, the motion sensing application may beconfigured to direct device 100 at step 416 to store this step count ina counter for later use. In other embodiments, the motion sensingapplication may be configured to direct device 100 at step 416 todisplay this step count to a user (e.g., on display 111). Time F of step408 may be less than, equal to, or greater than time N of step 412.Times N and F may be defined by motion sensor 112, by a motion sensingapplication, by other programs or components of device 100, by the userof device 100, or by any other suitable mechanism. More power may beconserved using the power mode management of process 400 as time F isincreased with respect to time N. That is, the longer device 100 isoperating in the inactive mode as compared to the amount of time deviceis operating in the active mode, more power may be conserved. After step416, process 400 may return to step 406 and steps 406-414 may berepeated.

It is understood that the steps shown in process 400 of FIG. 4 aremerely illustrative and that existing steps may be modified or omitted,additional steps may be added, and the order of certain steps may bealtered.

The processes described with respect to FIGS. 3A-3D and 4, as well asany other aspects of the invention, may each be implemented by software,but can also be implemented in hardware or a combination of hardware andsoftware. They each may also be embodied as computer readable coderecorded on a computer readable medium. The computer readable medium maybe any data storage device that can store data which can thereafter beread by a computer system. Examples of the computer readable mediuminclude read-only memory, random-access memory, flash memory, CD-ROMs,DVDs, magnetic tape, and optical data storage devices. The computerreadable medium can also be distributed over network-coupled computersystems so that the computer readable code is stored and executed in adistributed fashion.

Insubstantial changes from the claimed subject matter as viewed by aperson with ordinary skill in the art, now known or later devised, areexpressly contemplated as being equivalently within the scope of theclaims. Therefore, obvious substitutions now or later known to one withordinary skill in the art are defined to be within the scope of thedefined elements.

The above-described embodiments of the invention are presented forpurposes of illustration and not of limitation.

1-10. (canceled)
 11. A method for controlling power consumption of anelectronic device, the method comprising: processing first motion sensordata for a first duration of time during a first active power mode ofthe device; detecting that the first processed motion sensor dataidentifies a first motion event occurring a first number of times duringthe first duration of time at a first rate; switching from the firstactive power mode to a first inactive power mode of the device inresponse to the detecting; returning from the first inactive power modeto the first active power mode after a second duration of time;processing second motion sensor data for a third duration of time;determining that the second processed motion sensor data identifies thefirst motion event occurring a second number of times during the thirdduration of time at the first rate; and responding to a third number ofthe first motion event, wherein the third number equals the secondnumber plus the product of the second duration of time and the rate. 12.The method of claim 11, wherein the second duration of time is longerthan the third duration of time.
 13. The method of claim 11, wherein thefirst motion event is a user stepping event.
 14. The method of claim 13,wherein the responding comprises storing the third number in a counterindicative of the amount of steps taken by a user of the device.
 15. Themethod of claim 11, wherein the switching comprises: unloading a motionsensing application from a processor of the device; and deactivating atleast a portion of the processor. 16-20. (canceled)
 21. The method ofclaim 11, wherein the detecting comprises detecting that the firstprocessed motion sensor data identifies the first motion event occurringthe first number of times at a consistent rate for the first duration oftime, and wherein the first rate is the consistent rate.
 22. The methodof claim 11, wherein the determining comprises determining that thesecond processed motion sensor data identifies the first motion eventoccurring the second number of times at a consistent rate for the thirdduration of time, and wherein the first rate is the consistent rate. 23.The method of claim 11, wherein the first motion event comprises a footlifting motion event and a foot landing motion event.
 24. The method ofclaim 11, wherein the device uses less power when operating in the firstactive power mode than when operating in the first inactive power mode.25. The method of claim 11, wherein the responding comprises displayingthe third number to a user of the device.
 26. The method of claim 11,further comprising, before the switching, responding to the first numberof the first motion event.
 27. The method of claim 11, wherein theprocessing the first motion sensor data, the detecting, the switching,the returning, the processing the second motion sensor data, thedetermining, and the responding are performed by the device.
 28. Themethod of claim 11, wherein the device is unable to process motionsensor data while the device is operating in the first inactive powermode.
 29. Non-transitory computer-readable media for controlling anelectronic device, comprising computer-readable code recorded thereonfor: processing first motion sensor data for a first duration of timeduring a first active power mode of the device; detecting that the firstprocessed motion sensor data identifies a first motion event occurring afirst number of times during the first duration of time at a first rate;switching from the first active power mode to a first inactive powermode of the device in response to the detecting; returning from thefirst inactive power mode to the first active power mode after a secondduration of time; processing second motion sensor data for a thirdduration of time; determining that the second processed motion sensordata identifies the first motion event occurring a second number oftimes during the third duration of time at the first rate; andresponding to a third number of the first motion event, wherein thethird number equals the second number plus the product of the secondduration of time and the rate.
 30. The non-transitory computer-readablemedia of claim 29, wherein the second duration of time is longer thanthe third duration of time.
 31. The non-transitory computer-readablemedia of claim 29, wherein the first motion event is a user steppingevent.
 32. The non-transitory computer-readable media of claim 31,wherein the responding comprises storing the third number in a counterindicative of the amount of steps taken by a user of the device.
 33. Thenon-transitory computer-readable media of claim 29, wherein theswitching comprises: unloading a motion sensing application from aprocessor of the device; and deactivating at least a portion of theprocessor.
 34. The non-transitory computer-readable media of claim 29,wherein the detecting comprises detecting that the first processedmotion sensor data identifies the first motion event occurring the firstnumber of times at a consistent rate for the first duration of time, andwherein the first rate is the consistent rate.
 35. The non-transitorycomputer-readable media of claim 29, wherein the determining comprisesdetermining that the second processed motion sensor data identifies thefirst motion event occurring the second number of times at a consistentrate for the third duration of time, and wherein the first rate is theconsistent rate.
 36. The non-transitory computer-readable media of claim29, wherein the first motion event comprises a foot lifting motion eventand a foot landing motion event.
 37. The non-transitorycomputer-readable media of claim 29, wherein the device uses less powerwhen operating in the first active power mode than when operating in thefirst inactive power mode.
 38. The non-transitory computer-readablemedia of claim 29, wherein the responding comprises displaying the thirdnumber to a user of the device.
 39. The non-transitory computer-readablemedia of claim 29, further comprising additional computer-readable coderecorded thereon for, before the switching, responding to the firstnumber of the first motion event.
 40. The non-transitorycomputer-readable media of claim 29, wherein the device is unable toprocess motion sensor data while the device is operating in the firstinactive power mode.
 41. A method for controlling an electronic device,the method comprising: processing first motion sensor data from a motionsensor for a first duration of time while the device is operating in afirst active power mode of the device; detecting that the firstprocessed motion sensor data identifies a first motion event occurring afirst number of times during the first duration of time at a first rate;switching from the first active power mode to a first inactive powermode of the device in response to the detecting; after the switching,operating the device in the first inactive power mode of the device fora second duration of time; after the operating, returning from the firstinactive power mode to the first active power mode; after the returning,processing second motion sensor data from the motion sensor for a thirdduration of time while the device is operating in the first active powermode of the device; determining that the second processed motion sensordata identifies the first motion event occurring a second number oftimes during the third duration of time at the first rate; and inresponse to the determining, responding to a third number of the firstmotion event, wherein the third number equals the second number plus theproduct of the second duration of time and the first rate.